#ifndef __HAL_UART_H__
#define __HAL_UART_H__

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 串口接收回调
 */
typedef int (*uart_rx_cb_t)(void *data, int len);

/**
 * @brief 初始化UART
 * @param uart_num 串口号
 * @param baud_rate 波特率
 * @param rx_cb 接收回调函数
 * @return 初始化结果
 */
int hal_uart_init(int uart_num, int baud_rate, uart_rx_cb_t rx_cb);

/**
 * @brief 写入数据到UART
 * @param uart_num 串口号
 * @param src 数据源
 * @param size 数据大小
 * @return 写入字节数
 */
int hal_uart_write_bytes(int uart_num, const void *src, size_t size);

#ifdef __cplusplus
}
#endif

#endif // __HAL_UART_H__
